package com.huilian.iotbox.data.dto;

import com.huilian.iotbox.data.vo.EnumParamVo;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @author chenqiwen
 * @CreateDate: 2021-09-01-16-10
 * @Description:
 */
@Data
public class ProductParamDataDto extends QueryParam implements Serializable {

    private Integer id;
    /**
     * 数据类型：1、布尔型，2、整数型，3、浮点型，4、枚举型
     */
    private Integer dataType;
    /**
     * 产品参数Id
     */
    private Integer productFuncId;
    /**
     * 参数名称
     */
    private String paramName;
    /**
     * 值类型：1、整型，2、16进制数据，3、长整形，4、float_0.1(乘10方式)，5、float_0.01(乘100方式)，4、float_0.001(乘1000方式)
     */
    private Integer valueType;
    /**
     * 开
     */
    private Integer open;
    /**
     * 关
     */
    private Integer close;
    /**
     * 数值范围，开始
     */
    private BigDecimal dataStart;
    /**
     * 数值范围，结束
     */
    private BigDecimal dataEnd;
    /**
     * 单位
     */
    private String unit;
    /**
     * 参数长度
     */
    private Integer length;
    /**
     * 默认值
     */
    private String dataDefaultValue;
    /**
     * 默认为投币数
     */
    private Boolean isRateEach;
    /**
     * 预留JSON数据
     */
    private String reservedJson;

    /**枚举值*/
    private List<EnumParamVo> enumParamList;
    /**
     * 删除的是不是json数据
     */
    private Boolean isJsonData;
    /**
     * 删除、编辑json数据的下标
     */
    private Integer index;
    /**
     * 故障描述
     */
    private String description;
    /**
     * 故障代码
     */
    private Integer faultCode;
    /**
     * 是否故障
     */
    private Boolean isFault;
    /**基本参数值*/
    private String value;
    /**基本参数描述*/
    private String desc;
    /**
     * 设备id
     */
    private Integer deviceId;
    /**基本参数值*/
    private BigDecimal externalDeviceParamValue;
    private Boolean paramVisible;
    private Boolean paramDisable;


    private List<ProductParamDataDto> productParamDataDtoList;

    private Integer productId;

    private Integer funcType;

    private Boolean visible;

    private List<Integer> deviceIds;
    /**
     * 层级，如第一层、第二层
     */
    private Integer hierarchy;

    private Integer deviceItemId;
}
